home *** CD-ROM | disk | FTP | other *** search
/ PC Format (PL) 2015 August / PC_Format_082015.iso / Pełne wersje / F-Secure FREEDOME VPN 1.0.11 / Freedome.exe / QtGraphicalEffects / private / GaussianGlow.qml < prev    next >
Text File  |  2015-04-13  |  4KB  |  99 lines

  1. /****************************************************************************
  2. **
  3. ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
  4. ** Contact: http://www.qt-project.org/legal
  5. **
  6. ** This file is part of the Qt Graphical Effects module.
  7. **
  8. ** $QT_BEGIN_LICENSE:BSD$
  9. ** You may use this file under the terms of the BSD license as follows:
  10. **
  11. ** "Redistribution and use in source and binary forms, with or without
  12. ** modification, are permitted provided that the following conditions are
  13. ** met:
  14. **   * Redistributions of source code must retain the above copyright
  15. **     notice, this list of conditions and the following disclaimer.
  16. **   * Redistributions in binary form must reproduce the above copyright
  17. **     notice, this list of conditions and the following disclaimer in
  18. **     the documentation and/or other materials provided with the
  19. **     distribution.
  20. **   * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
  21. **     of its contributors may be used to endorse or promote products derived
  22. **     from this software without specific prior written permission.
  23. **
  24. **
  25. ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  26. ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  27. ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  28. ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  29. ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  30. ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  31. ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  32. ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  33. ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  34. ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  35. ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
  36. **
  37. ** $QT_END_LICENSE$
  38. **
  39. ****************************************************************************/
  40.  
  41. import QtQuick 2.0
  42.  
  43. Item {
  44.     id: rootItem
  45.     property variant source
  46.     property real radius: 0.0
  47.     property int maximumRadius: 0
  48.     property real spread: 0.0
  49.     property color color: "white"
  50.     property bool cached: false
  51.     property bool transparentBorder: false
  52.  
  53.     SourceProxy {
  54.         id: sourceProxy
  55.         input: rootItem.source
  56.         sourceRect: rootItem.transparentBorder ? Qt.rect(-1, -1, parent.width + 2.0, parent.height + 2.0) : Qt.rect(0, 0, 0, 0)
  57.     }
  58.  
  59.     ShaderEffectSource {
  60.         id: cacheItem
  61.         anchors.fill: shaderItem
  62.         visible: rootItem.cached
  63.         smooth: true
  64.         sourceItem: shaderItem
  65.         live: true
  66.         hideSource: visible
  67.     }
  68.  
  69.     GaussianDirectionalBlur {
  70.         id: shaderItem
  71.         x: transparentBorder ? -maximumRadius - 1 : 0
  72.         y: transparentBorder ? -maximumRadius - 1 : 0
  73.         width: horizontalBlur.width
  74.         height: horizontalBlur.height
  75.         horizontalStep: 0.0
  76.         verticalStep: 1.0 / parent.height
  77.         source: horizontalBlur
  78.         radius: rootItem.radius
  79.         maximumRadius: rootItem.maximumRadius
  80.         transparentBorder: rootItem.transparentBorder
  81.         enableColor: true
  82.         color: rootItem.color
  83.         spread: rootItem.spread
  84.     }
  85.  
  86.     GaussianDirectionalBlur {
  87.         id: horizontalBlur
  88.         width: transparentBorder ? parent.width + 2 * maximumRadius + 2 : parent.width
  89.         height: transparentBorder ? parent.height + 2 * maximumRadius + 2  : parent.height
  90.         horizontalStep: 1.0 / parent.width
  91.         verticalStep: 0.0
  92.         source: sourceProxy.output
  93.         radius: rootItem.radius
  94.         maximumRadius: rootItem.maximumRadius
  95.         transparentBorder: rootItem.transparentBorder
  96.         visible: false
  97.     }
  98. }
  99.